//贪心，从小到大，依次考虑当前可以取到的最小值枚举
class Solution {
public:
    int maxDistinctElements(vector<int>& nums, int k) {
        sort(nums.begin(), nums.end());
        int pre=INT_MIN, ans=0;
        for(int x:nums)
        {
            x=min(max(x-k, pre+1), x+k);
            if(x>pre) ans++, pre=x;
        }
        return ans;
    }
};